#ifndef __GZ_INTERFACE_SERVICE_SERVER_H__
#define __GZ_INTERFACE_SERVICE_SERVER_H__

#include <string>
#include <functional>

namespace Gazella {

//request, response
typedef std::function<bool(const std::string&, std::string&)> service_request_callback_t;

class GzServiceServer {
public:
    GzServiceServer();
    ~GzServiceServer();

    //create a service server
    static int create_server(
        const std::string& name, //service interface name
        service_request_callback_t callback, //service callback
        int domain = 0, //domain, default 0
        const std::string& describe = "" //service interface describe
    );

    //delete service server
    static int delete_server(const std::string& name);
};
} //namespace Gazella
#endif
